package com.spring.sunflower.bean;

import com.chad.library.adapter.base.entity.MultiItemEntity;
import com.google.gson.annotations.SerializedName;

/**
 * Created by Kevin on 2021/7/12<br/>
 * <p>
 * Describe:<br/>
 */
public class MessageCustomEntity implements MultiItemEntity {
    /**
     * 文本类型消息
     */
    public static final int MSG_TYPE_TEXT = 1;
    /**
     * 图片类型消息
     */
    public static final int MSG_TYPE_IMAGE = 3;
    /**
     * 语音类型消息
     */
    public static final int MSG_TYPE_AUDIO = 4;
    /**
     * 视频类型消息
     */
    public static final int MSG_TYPE_VIDEO = 5;
    /**
     * 文件类型消息
     */
    public static final int MSG_TYPE_FILE = 6;
    /**
     * 位置类型消息
     */
    public static final int MSG_TYPE_LOCATION = 7;

    /**
     * 自定义图片类型消息
     */
    public static final int MSG_TYPE_CUSTOM_FACE = 8;
    /**
     * 发送礼物消息
     */
    public static final int MSG_TYPE_CUSTOM_GIFT = 9;
    /**
     * 当前消息发送的时间
     */
    public static final int MSG_TYPE_TIME = 10;
    /**
     * 自定义消息
     */
    public static final int MSG_TYPE_CUSTOM = 2;

    /**
     * 提示类信息
     */
    public static final int MSG_TYPE_TIPS = 0x100;
    /**
     * 群创建提示消息
     */
    public static final int MSG_TYPE_GROUP_CREATE = 0x101;
    /**
     * 群解散提示消息
     */
    public static final int MSG_TYPE_GROUP_DELETE = 0x102;
    /**
     * 群成员加入提示消息
     */
    public static final int MSG_TYPE_GROUP_JOIN = 0x103;
    /**
     * 群成员退群提示消息
     */
    public static final int MSG_TYPE_GROUP_QUITE = 0x104;
    /**
     * 群成员被踢出群提示消息
     */
    public static final int MSG_TYPE_GROUP_KICK = 0x105;
    /**
     * 群名称修改提示消息
     */
    public static final int MSG_TYPE_GROUP_MODIFY_NAME = 0x106;
    /**
     * 群通知更新提示消息
     */
    public static final int MSG_TYPE_GROUP_MODIFY_NOTICE = 0x107;
    /**
     * 群音视频呼叫提示消息
     */
    public static final int MSG_TYPE_GROUP_AV_CALL_NOTICE = 0x108;

    /**
     * 消息未读状态
     */
    public static final int MSG_STATUS_READ = 0x111;
    /**
     * 消息删除状态
     */
    public static final int MSG_STATUS_DELETE = 0x112;
    /**
     * 消息撤回状态
     */
    public static final int MSG_STATUS_REVOKE = 0x113;
    /**
     * 消息正常状态
     */
    public static final int MSG_STATUS_NORMAL = 0;
    /**
     * 消息发送中状态
     */
    public static final int MSG_STATUS_SENDING = 1;
    /**
     * 消息发送成功状态
     */
    public static final int MSG_STATUS_SEND_SUCCESS = 2;
    /**
     * 消息发送失败状态
     */
    public static final int MSG_STATUS_SEND_FAIL = 3;
    /**
     * 消息内容下载中状态
     */
    public static final int MSG_STATUS_DOWNLOADING = 4;
    /**
     * 消息内容未下载状态
     */
    public static final int MSG_STATUS_UN_DOWNLOAD = 5;
    /**
     * 消息内容已下载状态
     */
    public static final int MSG_STATUS_DOWNLOADED = 6;
    private int itemType;
    private boolean isSelf;
    private String sender;
    private int status;
    private String msgID;
    private long seq;
    private long random;
    private long timestamp;

    public long getSeq() {
        return seq;
    }

    public void setSeq(long seq) {
        this.seq = seq;
    }

    public long getRandom() {
        return random;
    }

    public void setRandom(long random) {
        this.random = random;
    }

    public long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(long timestamp) {
        this.timestamp = timestamp;
    }

    public String getSender() {
        return sender;
    }

    public void setSender(String sender) {
        this.sender = sender;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getMsgID() {
        return msgID;
    }

    public void setMsgID(String msgID) {
        this.msgID = msgID;
    }

    public boolean isSelf() {
        return isSelf;
    }

    public void setSelf(boolean self) {
        isSelf = self;
    }

    @Override
    public int getItemType() {
        return itemType;
    }

    public void setItemType(int itemType) {
        this.itemType = itemType;
    }

    public int audioDuration;
    private String audioUrl;

    public String content;

    public String fromUserMemberId;

    public String fromUserNickname;

    public String fromUserPhoto;
    public String toUserMemberId;

    public String toUserNickname;

    public String toUserPhoto;

    //        public GiftBean gift;
    @SerializedName(alternate = {"giftEffects"}, value = "effects")
    public String giftEffects;

    @SerializedName(alternate = {"giftId"}, value = "id")
    public String giftId;

    @SerializedName(alternate = {"giftIcon"}, value = "imagePath")
    public String giftImagePath;

    @SerializedName(alternate = {"giftName"}, value = "name")
    public String giftName;

    @SerializedName(alternate = {"giftCount"}, value = "number")
    public String giftNumber;

    public String msgType;


    public int picHeight;

    public String picUrl;

    public int picWidth;

    public String readType = "normal";

    public long time;

    public int getAudioDuration() {
        return audioDuration;
    }

    public void setAudioDuration(int audioDuration) {
        this.audioDuration = audioDuration;
    }

    public String getAudioUrl() {
        return audioUrl;
    }

    public void setAudioUrl(String audioUrl) {
        this.audioUrl = audioUrl;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getFromUserMemberId() {
        return fromUserMemberId;
    }

    public void setFromUserMemberId(String fromUserMemberId) {
        this.fromUserMemberId = fromUserMemberId;
    }

    public String getFromUserNickname() {
        return fromUserNickname;
    }

    public void setFromUserNickname(String fromUserNickname) {
        this.fromUserNickname = fromUserNickname;
    }

    public String getFromUserPhoto() {
        return fromUserPhoto;
    }

    public void setFromUserPhoto(String fromUserPhoto) {
        this.fromUserPhoto = fromUserPhoto;
    }

    public String getToUserMemberId() {
        return toUserMemberId;
    }

    public void setToUserMemberId(String toUserMemberId) {
        this.toUserMemberId = toUserMemberId;
    }

    public String getToUserNickname() {
        return toUserNickname;
    }

    public void setToUserNickname(String toUserNickname) {
        this.toUserNickname = toUserNickname;
    }

    public String getToUserPhoto() {
        return toUserPhoto;
    }

    public void setToUserPhoto(String toUserPhoto) {
        this.toUserPhoto = toUserPhoto;
    }

    public String getGiftEffects() {
        return giftEffects;
    }

    public void setGiftEffects(String giftEffects) {
        this.giftEffects = giftEffects;
    }

    public String getGiftId() {
        return giftId;
    }

    public void setGiftId(String giftId) {
        this.giftId = giftId;
    }

    public String getGiftImagePath() {
        return giftImagePath;
    }

    public void setGiftImagePath(String giftImagePath) {
        this.giftImagePath = giftImagePath;
    }

    public String getGiftName() {
        return giftName;
    }

    public void setGiftName(String giftName) {
        this.giftName = giftName;
    }

    public String getGiftNumber() {
        return giftNumber;
    }

    public void setGiftNumber(String giftNumber) {
        this.giftNumber = giftNumber;
    }

    public String getMsgType() {
        return msgType;
    }

    public void setMsgType(String msgType) {
        this.msgType = msgType;
    }

    public int getPicHeight() {
        return picHeight;
    }

    public void setPicHeight(int picHeight) {
        this.picHeight = picHeight;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }

    public int getPicWidth() {
        return picWidth;
    }

    public void setPicWidth(int picWidth) {
        this.picWidth = picWidth;
    }

    public String getReadType() {
        return readType;
    }

    public void setReadType(String readType) {
        this.readType = readType;
    }

    public long getTime() {
        return time;
    }

    public void setTime(long time) {
        this.time = time;
    }
}
